#ifndef __TM1637__
#define __TM1637__
#include "bflb_mtimer.h"
#include "bflb_gpio.h"

// 亮度等级
enum LIGHT_DEGREE
{
    LEVEL1 = 0x88, // 设置脉冲宽度为 1/16
    LEVEL2 = 0x89, // 设置脉冲宽度为 2/16
    LEVEL3 = 0x8A, // 设置脉冲宽度为 4/16
    LEVEL4 = 0x8B, // 设置脉冲宽度为 10/16
    LEVEL5 = 0x8C, // 设置脉冲宽度为 11/16
    LEVEL6 = 0x8D, // 设置脉冲宽度为 12/16
    LEVEL7 = 0x8E, // 设置脉冲宽度为 13/16
    LEVEL8 = 0x8F, // 设置脉冲宽度为 14/16
};

/*定义时钟PIN*/
#define TM1637_CLOCK GPIO_PIN_16
/*定义dataPIN*/
#define TM1637_DATA GPIO_PIN_17

/**
 * @brief 初始化GPIO
 *
 */
void TM1637_init();

/**
 * @brief 使数码管显示数字
 *
 * @param numer1 第一个数字
 * @param numer2 第二个数字
 * @param numer3 第三个数字
 * @param numer4 第四个数字
 * @param colon  是否显示冒号(:) 接受参数 0 or 1
 * 0 不显示
 * 1 显示
 * @param level 亮度等级，
 */
void TM1637_display(unsigned char numer1, unsigned char numer2, unsigned char numer3, unsigned char numer4, unsigned char colon, enum LIGHT_DEGREE level);

#endif